package cn.com.surker.material.entity;

import cn.com.surker.enums.material.MaterialType;
import cn.com.surker.util.StringUtils;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * <p>
 * 用于统计的材料子项字段
 * </p>
 *
 * @author admin
 * @since 2023-07-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class MaterialOutboundItemReport extends MaterialOutboundItem {

	/**
	 * 出库单编号
	 */
	private String outboundCode;

	/**
	 * 材料编号
	 */
	private String materialCode;

	/**
	 * 材料名称
	 */
	private String materialName;

	/**
	 * 材料规格
	 */
	private String materialNorms;

	/**
	 * 品牌
	 */
	private String materialBrand;

	public String getMaterialNorms() {
		if (StringUtils.isNotBlank(materialNorms)){
			return materialNorms;
		}else {
			return "";
		}
	}

	public String getMaterialBrand() {
		if (StringUtils.isNotBlank(materialBrand)){
			return materialBrand;
		}else {
			return "";
		}
	}

	public String getMaterialUnit() {
		if (StringUtils.isNotBlank(materialUnit)){
			return materialUnit;
		}else {
			return "";
		}
	}

	/**
	 * 材料单位,米,个,吨等
	 */
	private String materialUnit;


	/**
	 * 辅材类型.0:主材;1:生产辅材;2:备品备件
	 */
	private Integer materialType;

	/**
	 * 材料类型名称
	 */
	@TableField(exist = false)
	private String materialTypeName;

	public String getMaterialTypeName(){
		if(this.materialType != null){
			MaterialType[] values = MaterialType.values();
			for (int i = 0,s = values.length;i < s;i++){
				MaterialType value = values[i];
				if(value.getCode().equals(this.materialType)){
					return value.getDescription();
				}
			}
			return MaterialType.Material31.getDescription();
		}else {
			return MaterialType.Material31.getDescription();
		}
	}

	/**
	 * 材料价值类型(0：消耗品，1：办公资产)
	 */
	private Integer materialAttrType;

	private String materialAttrTypeName;

	public String getMaterialAttrTypeName() {
		if(this.materialAttrType != null && this.materialAttrType.equals(1)){
			return "办公资产";
		}else {
			return "消耗品";
		}
	}

	/**
	 * 部门名称
	 */
	private String deptName;

	/**
	 * 领用人
	 */
	private String userName;

	/**
	 * 出库人
	 */
	private String createrName;

	/**
	 * 单价
	 */
	private BigDecimal unitPrice;

	/**
	 * 总价
	 */
	private BigDecimal totalPrice;

	/**
	 * 含税单价
	 */
	private BigDecimal taxUnitPrice;

	/**
	 * 含税总价
	 */
	private BigDecimal taxTotalPrice;

	/**
	 * 子项备注
	 */
	private String itemRemarks;

	public String getItemRemarks() {
		if(StringUtils.isBlank(itemRemarks)){
			return "";
		}
		return itemRemarks;
	}
}
